package org.totoro.memory.direct;

import org.junit.Test;

import java.nio.ByteBuffer;

/**
 * @author daocr
 * @date 2020/3/6
 */
public class DirectMemory {


    /**
     * 申请直接内存
     * <p>
     * 原理：通过 unsafe 类来申请内存
     */
    @Test
    public void allocateDirect() {
        int memorySize100Mb = 1024 * 1024 * 100;

        // 申请一百兆直接内存
        ByteBuffer allocate = ByteBuffer.allocateDirect(memorySize100Mb);
    }

    /**
     * 释放内存
     * <p>
     * 原理：是通过 虚引用加gc 触发  unsafe 去释放内存，如果没有发生gc，会导致直接内存一直得不到释放的现象
     */

    @Test
    public void releaseMemory() {


    }


}
